#ifndef _LINKEDSTACK_H
#define _LINKEDSTACK_H

#include<iostream>
#include<assert.h>

#include "stack.h"
#include "LinkedList.h"

template<class T>
class LinkedStack: public Stack<T> {
	public:
		LinkedStack():top(NULL){}
		~LinkedStack();
	public:
		void Push(T& x);
		bool Pop(T& x);
		bool getTop(T& x);
		bool IsEmpty();
		bool IsFull();
		int getSize();
		void MakeEmpty();
		friend ostream& operator<< (ostream& os,LinkStack<T> s);
	private:
		LinkNode<T> *top;

};








#endif
